/** 
 * (#)EntityDAO.java 1.0 2008-6-7 上午09:25:37 
 * 
 */  
package com.hzh.blog.common.dao;  
      
  
import java.io.Serializable;
import java.util.List;
      
      
public interface EntityDao<T> {  
  
    /** 
     * 根据主键查找对象 
     *  
     * @param id 
     *            主键值 
     * @return 对象实体 
     */  
    T findByPrimarykey(Serializable id);  
  
    /** 
     * 新增对象到数据库 
     *  
     * @param o 
     *            对象实体 
     */  
    void insert(T o);  
  
    /** 
     * 更新对象实体到数据库 
     *  
     * @param o 
     *            对象实体 
     */  
    void update(T o);  
  
    /** 
     * 根据主键删除对象 
     *  
     * @param id 
     *            主键值 
     */  
    void deleteByPrimarykey(Serializable id);  
  
    /** 
     * 更新对象信息 
     *  
     * @param statementId 
     *            sql语句名称后缀 
     * @param parameters 
     *            sql参数 
     */  
    void update(String statementId, Object parameters);  
  
    /** 
     * sql查询单个对象 
     *  
     * @param statementId 
     *            sql语句名称后缀 
     * @param parameters 
     *            sql参数 
     * @return 查询结果 
     */  
    T queryForObject(String statementId, Object parameters);  
  
    /** 
     * sql查询列表 
     *  
     * @param statementId 
     *            sql语句名称后缀 
     * @param parameters 
     *            sql参数 
     * @return 查询结果 
     */  
    List<T> queryForList(String statementId, Object parameters);  
    
    
    /**
     * 查询全部数据
     * @return
     */
    List<T> queryAll();  
    
}  